-- 参数说明：
-- ARGV[1]: 商品名称（如 "productName"）
-- ARGV[2]: 用户ID（如 "123"）

-- 构造Redis Key
local stockKey = "seckill:stock:" .. ARGV[1]
local userKey = "seckill:user:" .. ARGV[1]

-- 检查库存
local stock = tonumber(redis.call('GET', stockKey))
if not stock or stock <= 0 then
    return 1
end

-- 检查用户是否购买过
local exists = redis.call('SISMEMBER', userKey, ARGV[2])
if exists == 1 then
    return 2
end

-- 扣减库存并标记用户
redis.call('DECR', stockKey)
redis.call('SADD', userKey, ARGV[2])
return 0